package com.ruoyi.ftrl.controller;

import cn.hutool.core.date.DateUtil;
import com.ruoyi.ftrl.mapper.TempCacheMapper;
import com.ruoyi.ftrl.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Slf4j
@Component("TimedTasks")
public class TimedTasks {
    @Autowired
    private IEquipmentDockingService iEquipmentDockingService;;
    @Autowired
    private IWeatherService iWeatherService;
    @Autowired
    IControlValveService controlValveService;
    @Autowired
    private IHeatInfoService heatInfoService;
    @Autowired
    private IAvgTemperatureService avgTemperatureService;
    @Autowired
    private TempCacheMapper tempCacheMapper;

    public void updateTemperatureCache() {
        log.info("开始更新温度统计缓存 {}", DateUtil.now());

        try {
            // 执行缓存更新
            tempCacheMapper.updateTemperatureCache();

            log.info("温度统计缓存更新完成");
        } catch (Exception e) {
            log.error("温度缓存更新失败", e);
        }
    }

    //定时任务 定时更新小区平均室温
    public void updateTemp(){
        avgTemperatureService.selectAvgTemperatureAllList();
    }

    //定时任务 定时发送频道号
    public void send(){
        controlValveService.heartbeat();
    }

    //定时任务 定时拉取室温实时数据
    public void move(){
        iEquipmentDockingService.selectEquipmentDockingLists();
    }

    //定时任务 定时拉取实时天气预报并数据入库
    public void weather(){
        iWeatherService.fetchAndSaveWeather();
    }

    //定时任务 定时拉取最新阀门数据 判断当前房间的户型并更新
    public void homeType(){
        controlValveService.updateHome();
    }




    //定时任务 定时拉取天罡系统关于安悦佳苑的热表数据
    public void hot(){
        heatInfoService.selectHeatInfoLists();
    }

    //定时任务 定时拉取天罡系统关于安悦佳苑的阀门数据（锁闭阀）
    public void valve(){
        controlValveService.selectControlValveLists();
    }

    //定时任务 定时拉取天罡系统关于厚福盈的阀门数据（锁闭阀）
    public void valve1(){
        controlValveService.selectControlValveListss();
    }

    //定时任务 定时拉取天罡系统关于小察院和防疫站的阀门数据（平衡阀）
    public void valve2(){
        controlValveService.selectControlValveListsss();
    }


    //定时任务 定时拉取最新黑蚂蚁室温采集器数据
//    public void temp(){
//        iEquipmentDockingService.selectEquipmentDockingListsss();
//    }

}
